// pages/detail/detail.js
const AV = getApp().globalData.AV
const appdata = getApp()
Page({

    /**
     * 页面的初始数据
     */
    data: {
        title: [], // 标题
        detailList: [], //列表
        switch: false, //遮罩层的开关
        sizeBig: '6寸(2-3人食用)', //尺寸大小
        sizeId: 0, //商品尺寸点击的index
        Price: null, //变化价格
        num: 1, //数量
        objectid: '', //商品的objectId
        scrollStyle: '', //禁止滑动
        val: '0',
        openid: '',
        discusslist: [], // 评论
        listid:'' //列表id
    },
    // 数量减少
    downfn() {
        if (this.data.num <= 1) {
            return this.data.num
        } else {
            this.setData({
                num: this.data.num - 1
            })
        }
    },
    // 数量增加
    addfn() {
        this.setData({
            num: this.data.num + 1
        })

    },
    // 更改尺寸和框架颜色的点击事件
    changSizeBig(e) {
        const prices = this.data.price
        if (e.currentTarget.dataset.index == 0) {
            this.setData({
                Price: parseInt(prices) + parseInt(e.currentTarget.dataset.index * 65)
            })
        } else if (e.currentTarget.dataset.index == 1) {
            this.setData({
                Price: parseInt(prices) + parseInt(e.currentTarget.dataset.index * 65)
            })
        } else if (e.currentTarget.dataset.index == 2) {
            this.setData({
                Price: parseInt(prices) + parseInt(e.currentTarget.dataset.index * 65)
            })
        } else {
            this.setData({
                Price: parseInt(prices) + parseInt(e.currentTarget.dataset.index * 65)
            })
        }
        this.setData({
            sizeId: e.currentTarget.dataset.index,
            sizeBig: this.data.detailList[0].attributes.size[e.currentTarget.dataset.index],
        })
    },
    // 点击规格，规格详情出现
    exportSize(e) {
        this.setData({
            switch: true,
            val: e.currentTarget.dataset.val,
            scrollStyle: 'disableScroll' // 禁止滚动
        })
    },
    // 加入购物车功能，判断是否登录
    addCartsss(e) {
        // console.log(this.data.openid);
        if (this.data.openid == null) {
            wx.showToast({
                icon: 'error',
                title: '请先登录'
            })
        } else {
            // 查询表里是否有该商品，没有就添加到购物车的表，有就改变其数量
            const query = new AV.Query('cart')
            query.equalTo('openId', this.data.openid);
            query.equalTo('id', e.currentTarget.dataset.list.id);
            query.equalTo('stater', '0');
            query.find().then((res) => {
                console.log(res);
                // 判断购物车是否有该数据，没有就添加
                if (res.length == 0) {
                    const num = Number(this.data.sizeId)
                    const arr = e.currentTarget.dataset.list.attributes.size[num]
                    const Todo = AV.Object.extend('cart')
                    const todo = new Todo()
                    todo.set('brand', e.currentTarget.dataset.list.attributes.brand)
                    todo.set('flavor', e.currentTarget.dataset.list.attributes.flavor)
                    todo.set('image', e.currentTarget.dataset.list.attributes.image)
                    todo.set('id', e.currentTarget.dataset.list.id)
                    todo.set('size', arr)
                    todo.set('stater', e.currentTarget.dataset.list.attributes.stater)
                    todo.set('price', this.data.Price)
                    todo.set('number', this.data.num)
                    todo.set('openId', this.data.openid)
                    todo.set('listName', e.currentTarget.dataset.list.attributes.title)
                    todo.save().then(
                        (todo) => {
                            // 成功保存之后，执行其他逻辑
                            console.log(`保存成功。objectId：${todo.id}`);
                            wx.showToast({
                                title: '加入成功',
                            })
                            setTimeout(() => {
                                this.setData({
                                    switch: false,
                                    scrollStyle: ''
                                })
                            }, 1000);
                        }
                    )
                } else {
                    const query = new AV.Query('cart')
                    query.equalTo('openId', this.data.openid);
                    query.equalTo('id', e.currentTarget.dataset.list.id);
                    query.find().then((res) => {
                        // console.log(res[0].id);
                        const tode = AV.Object.createWithoutData('cart', res[0].id)
                        tode.set('size', e.currentTarget.dataset.list.attributes.size[this.data.sizeId])
                        tode.set('number', this.data.num)
                        tode.set('price', this.data.Price)
                        tode.save().then(() => {
                            wx.showToast({
                                title: '加入成功',
                            })
                            setTimeout(() => {
                                this.setData({
                                    switch: false,
                                    scrollStyle: ''
                                })
                            }, 1000);
                        })
                    })
                }
            })
        }
    },
    // 点击空白，规格详情关闭
    closeSize(e) {
        if (e.currentTarget.dataset.index == 1) {
            this.setData({
                switch: false,
                scrollStyle: ''
            })
        }
    },
    // 点击店铺跳转到主页
    gotoHome() {
        wx.switchTab({
            url: '/pages/home/home',
        })
    },
    // 点击购物车跳转到购物车页面
    gotoShopping() {
        wx.switchTab({
            url: '/pages/shopping/shopping',
        })
    },
    // 底部的加入购物车，跳出弹框，在加入购物车
    addCart(e) {
        this.setData({
            switch: true,
            val: e.currentTarget.dataset.val,
            scrollStyle: 'disableScroll' // 禁止滚动
        })

    },
    // leanclound的detail获取详情
    updateItem() {
        const query = new AV.Query('detail');
        query.equalTo('objectId', this.data.listid);
        query.find().then((res) => {
            console.log(res);
            this.setData({
                detailList: res,
                Price: res[0].attributes.discountPrice,
                price: res[0].attributes.discountPrice
            })
        })
    },
    // 点击立即购买，出现弹框
    rightBuy(e) {
        this.setData({
            switch: true,
            val: e.currentTarget.dataset.val,
            scrollStyle: 'disableScroll' // 禁止滚动
        })
    },
    // 立即购买的下一步
    gobuy(e) { 
        // console.log(e.currentTarget.dataset.list.id);
        if (this.data.openid == null) {
            wx.showToast({
                icon: 'error',
                title: '请先登录'
            })
        } else { // 查询表里是否有该商品，没有就添加到购物车的表，有就改变其数量
            const query = new AV.Query('cart')
            query.equalTo('openId', this.data.openid);
            query.equalTo('id', e.currentTarget.dataset.list.id);
            query.equalTo('stater', '0');
            query.find().then((res) => {
                // console.log(res);
                // 判断购物车表是否有该数据，没有就添加
                if (res.length == 0) {
                    const num = Number(this.data.sizeId)
                    const arr = e.currentTarget.dataset.list.attributes.size[num]
                    const Todo = AV.Object.extend('cart')
                    const todo = new Todo()
                    todo.set('brand', e.currentTarget.dataset.list.attributes.brand)
                    todo.set('flavor', e.currentTarget.dataset.list.attributes.flavor)
                    todo.set('image', e.currentTarget.dataset.list.attributes.image)
                    todo.set('id', e.currentTarget.dataset.list.id)
                    todo.set('size', arr)
                    todo.set('stater', e.currentTarget.dataset.list.attributes.stater)
                    todo.set('price', this.data.Price)
                    todo.set('number', this.data.num)
                    todo.set('openId', this.data.openid)
                    todo.set('listName', e.currentTarget.dataset.list.attributes.title)
                    todo.save().then(() => {
                            const query = new AV.Query('cart')
                            query.equalTo('openId', this.data.openid);
                            query.equalTo('id', e.currentTarget.dataset.list.id);
                            query.equalTo('stater', '0');
                            query.find().then((res) => {
                                wx.navigateTo({
                                    url: '/pages/order/order?num=0&id=' + res[0].id,
                                })
                                setTimeout(() => {
                                    this.setData({
                                        switch: false,
                                        scrollStyle: ''
                                    })
                                }, 1000)
                            })
                        },
                    )
                } else {
                    const query = new AV.Query('cart')
                    query.equalTo('openId', this.data.openid);
                    query.equalTo('id', e.currentTarget.dataset.list.id);
                    query.find().then((res) => {
                        const tode = AV.Object.createWithoutData('cart', res[0].id)
                        tode.set('size', e.currentTarget.dataset.list.attributes.size[this.data.sizeId])
                        tode.set('number', this.data.num)
                        tode.set('price', this.data.Price)
                        tode.save().then(() => {
                                wx.navigateTo({
                                    // url: '/pages/order/order?id=' + res[0].id,
                                    url: '/pages/order/order?num=0&id=' + res[0].id,
                                })
                                setTimeout(() => {
                                    this.setData({
                                        switch: false,
                                        scrollStyle: ''
                                    })
                                }, 1000)
                           
                        })
                    })
                }
            })
        }
    },
    discuss(id){ // 评论
        const query = new AV.Query('discuss');
        query.equalTo('stater', '0');
        query.equalTo('listdetailsid', id);
        query.find().then((students) => {
          this.setData({
            discusslist: students
          })
          console.log(students);
        })
      },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        console.log(options);
        wx.showLoading({
            title: '正在加载中',
        })
        setTimeout(function () {
            wx.hideLoading()
        }, 1000)

        this.setData({
            title: options.title,
            listid:options.id  
        })
        wx.setNavigationBarTitle({
            title: this.data.title,
        })
        this.updateItem()
        this.discuss(options.id)
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },
    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        const openids = appdata.globalData.userInfo
        // console.log(openids);
        this.setData({
            openid: openids
        })
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})